![Deno 2.2 Improves Dependency Management and Expands Node.js Compatibility](https://cdn.sanity.io/images/cgdhsj6q/production/97774ea8c88cc8f4bed2766c31994ebc38116948-1664x1366.png?w=400&fit=max&auto=format)
Security News
Deno 2.2 Improves Dependency Management and Expands Node.js Compatibility
Deno 2.2 enhances Node.js compatibility, improves dependency management, adds OpenTelemetry support, and expands linting and task automation for developers.
The call-bind npm package is a utility that allows you to use the ECMAScript 5 .call and .apply methods with a fixed this value. It is particularly useful when you want to ensure that the context (the this value) of a function call is bound to a specific object, regardless of how the function is invoked. This can be helpful in functional programming and when dealing with higher-order functions that might change the context of a function call.
callBind
Provides a way to use the native call method in a bound fashion, ensuring the this value is fixed when invoking a function.
const callBind = require('call-bind');
const call = callBind.call;
const unboundSlice = Array.prototype.slice;
const slice = call(unboundSlice);
function example() {
const args = slice(arguments);
console.log(args);
}
example(1, 2, 3); // Logs: [1, 2, 3]
applyBind
Allows you to use the native apply method in a bound manner, similar to callBind but for functions that expect an array of arguments.
const callBind = require('call-bind');
const apply = callBind.apply;
const unboundForEach = Array.prototype.forEach;
const forEach = apply(unboundForEach);
function example(array, callback) {
forEach(array, callback);
}
example([1, 2, 3], function(element) { console.log(element); }); // Logs: 1, 2, 3
Implements the Function.prototype.bind method in an ECMAScript 5-compliant way. It is similar to call-bind in that it allows you to fix the this value for function calls, but it does so by returning a new function with the this value bound, rather than using the call or apply methods directly.
Robustly .call.bind()
a function.
npm install --save call-bind
const assert = require('assert');
const callBind = require('call-bind');
const callBound = require('call-bind/callBound');
function f(a, b) {
assert.equal(this, 1);
assert.equal(a, 2);
assert.equal(b, 3);
assert.equal(arguments.length, 2);
}
const fBound = callBind(f);
const slice = callBound('Array.prototype.slice');
delete Function.prototype.call;
delete Function.prototype.bind;
fBound(1, 2, 3);
assert.deepEqual(slice([1, 2, 3, 4], 1, -1), [2, 3]);
Clone the repo, npm install
, and run npm test
v1.0.8 - 2024-12-05
407fd5e
call-bind-apply-helpers
81018fb
set-function-length/env
0fc311d
77a0cad
@ljharb/eslint-config
, auto-changelog
, es-value-fixtures
, gopd
, object-inspect
, tape
a145d10
aud
with npm audit
30ca3dd
set-function-length
57c79a3
601cfa5
FAQs
Robustly `.call.bind()` a function
The npm package call-bind receives a total of 44,530,903 weekly downloads. As such, call-bind popularity was classified as popular.
We found that call-bind demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
Deno 2.2 enhances Node.js compatibility, improves dependency management, adds OpenTelemetry support, and expands linting and task automation for developers.
Security News
React's CRA deprecation announcement sparked community criticism over framework recommendations, leading to quick updates acknowledging build tools like Vite as valid alternatives.
Security News
Ransomware payment rates hit an all-time low in 2024 as law enforcement crackdowns, stronger defenses, and shifting policies make attacks riskier and less profitable.